package com.shensi.adminCollect.domain.station;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * @date 2024/1/16
 */
@Setter
@Getter
@ApiModel
public class GradeQrSetting implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * id
     */
    @ApiModelProperty("id")
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 油企id
     */
    @ApiModelProperty("油企id")
    private Long enterpriseId;

    /**
     * 等级code
     */
    @ApiModelProperty("等级code")
    @NotBlank
    private String gradeCode;

    /**
     * 生效模式，1-固定天数，2-固定时间段
     */
    @ApiModelProperty("生效模式，1-固定天数，2-固定时间段")
    @NotNull
    @Min(1)
    @Max(2)
    private Integer expireMode;

    /**
     * 天数 固定天数模式有效
     */
    @ApiModelProperty("天数 固定天数模式有效")
    private Integer fixedDay;

    /**
     * 开始日期 固定时间段模式有效
     */
    @ApiModelProperty(value = "开始日期 固定时间段模式有效",example = "2024-02-03")
    private LocalDate effectStartDate;

    /**
     * 结束日期 固定时间段模式有效
     */
    @ApiModelProperty(value = "结束日期 固定时间段模式有效",example = "2024-02-05")
    private LocalDate effectEndDate;

    /**
     * 开始时间 固定时间段模式有效
     */
    @ApiModelProperty(value = "开始时间 固定时间段模式有效",dataType = "string",example = "08:00:00")
    private LocalTime effectStartTime;

    /**
     * 开始时间 固定时间段模式有效
     */
    @ApiModelProperty(value = "开始时间 固定时间段模式有效",dataType = "string",example = "08:00:00")
    private LocalTime effectEndTime;

    /**
     * create_time
     */
    @ApiModelProperty("create_time")
    private LocalDateTime createTime;

    /**
     * create_by
     */
    @ApiModelProperty("create_by")
    private String createBy;

    /**
     * update_time
     */
    @ApiModelProperty("update_time")
    private LocalDateTime updateTime;

    /**
     * update_by
     */
    @ApiModelProperty("update_by")
    private String updateBy;

    /**
     * 版本号
     */
    @ApiModelProperty("版本号")
    private Long version;

    /**
     * 0-未删除，1-删除
     */
    @ApiModelProperty("0-未删除，1-删除")
    @TableLogic(value = "0",delval = "1")
    private Integer delFlag;
}
